from app import db
import uuid

class UserInfo(db.Model):
    __tablename__ = 'user_info'

    user_id = db.Column(db.String(255), primary_key=True, default=lambda: str(uuid.uuid4()))
    openid = db.Column(db.String(255))
    card_id = db.Column(db.String(255))
    phone = db.Column(db.String(255))
    gender = db.Column(db.Integer) # 性别（0：男，1：女，2：其他等）
    birthday = db.Column(db.String(255))
    age = db.Column(db.Integer, nullable=True)
    province = db.Column(db.String(255))
    city = db.Column(db.String(255))
    district = db.Column(db.String(255))
    has_disease = db.Column(db.Boolean, default=False)  # 用户是否有疾病（布尔值）
    do_sport = db.Column(db.Boolean, default=False)  # 用户是否参与运动（布尔值）
    lifestyle_type = db.Column(db.String(255), nullable=True)  # 用户的生活方式类型（如：运动员、普通人、孕妇等）
    target = db.Column(db.String(255), nullable=True)  # 用户健康目标（如：减脂、增肌、维持体重、糖尿病管理）

    # 创建时间和更新时间字段
    created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
    updated_at = db.Column(db.DateTime, default=db.func.current_timestamp(), onupdate=db.func.current_timestamp())

    # 关联其他模型（假设用户表与其他表有关联）
    # user_factors = db.relationship('UserFactor', backref='user_info', lazy=True)
    # workout_records = db.relationship('WorkoutRecord', backref='user_info', lazy=True)


def __repr__(self):
    return f"<UserInfo(user_id={self.user_id}, phone={self.phone}, gender={self.gender}, age={self.age})>"

